// run: $exec < input
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>

int const maxn = 2007;
bool f[maxn][maxn];
std::string a, b, c;
int n;

int main()
{
	std::ios::sync_with_stdio(false);
	while (std::cin >> a >> b >> c) {
		std::memset(f, 0, sizeof(f));
		if (c.size() != a.size() + b.size()) {
			std::cout << "No\n"; continue;
		}
		int la = a.size(), lc = c.size();
		f[0][0] = true;
		for (int i = 1; i <= lc; i++) {
			for (int j = 0; j <= std::min(la, i); j++) {
				if (j > 0) {
					if (c[i - 1] == a[j - 1]) {
						if (f[i - 1][j - 1])
							f[i][j] = true;
					}
				}
				if (i >= j + 1) {
					if (c[i - 1] == b[i - j - 1]) {
						if (f[i - 1][j])
							f[i][j] = true;
					}
				}
			}
		}
		if (f[lc][la])
			std::cout << "Yes\n";
		else
			std::cout << "No\n";
	}
}

